package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.LaneEleInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护车道元素的Dubbo服务
 * @author wangweida
 * @version V1.0
 */
public interface DubboLaneEleInfoService {
	
	/**
	 * 返回所有车道元素信息
	 * @return ResultPojo 所有车道元素信息
	 */
	public ResultPojo getLaneEleInfo();
	
	/**
	 * 返回指定车道元素的车道信息
	 * @param laneId 车道元素编号
	 * @param laneName 车道名称
	 * @param CrossId
	 * @param CrossName
	 * @param orderSeq
	 * @return ResultPojo 车道元素信息
	 */
	
	public ResultPojo getLaneEleInfoList(String laneId, String laneName, String crossId, String crossName, String orderSeq);
	
	/**
	 * 分页返回指定车道元素的车道信息
	 * @param 分页参数
	 * @param laneId 车道元素编号
	 * @param laneName 车道名称
	 * @param CrossId
	 * @param CrossName
	 * @param orderSeq
	 * @return ResultPojo 车道元素信息
	 */
	@SuppressWarnings("rawtypes")
	public ResultPojo getPageEasyUiLaneEleInfo(Page page,String laneId, String laneName, String crossId, String crossName, String orderSeq);
	/**
	 * 返回指定车道元素的车道信息
	 * @param laneId 车道元素编号
	 * @return ResultPojo 车道元素信息
	 */
	public ResultPojo getLaneEleInfoById(String laneId);
	
	/**
	 * 按名称匹配并返回车道元素信息
	 * @param laneName 车道名称
	 * @return ResultPojo 车道元素信息
	 */
	public ResultPojo getLaneEleInfoByName(String laneName);
	
	/**
	 * 根据路口编号获取车道元素
	 * @param CrossId
	 * @return 返回根据路口编号获取车道元素分页信息
	 */
	public ResultPojo getLaneEleInfoByCrossId(String CrossId);
	
	/**
	 * 添加一条车道元素信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param laneEleInfoDto 路段信息
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addLaneEleInfo(String token, LaneEleInfoDto laneEleInfoDto);

	/**
	 * 修改一条车道元素信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param laneEleInfoDto 路段信息
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editLaneEleInfo(String token, LaneEleInfoDto laneEleInfoDto);

	/**
	 * 删除指定编码的车道元素信息
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param laneId 路段编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeLaneEleInfo(String token, String laneId);

	public ResultPojo removeLaneEleInfo(String token, String laneId, String crossId);

}
